curl_multi_add_handle
向curl批处理会话中添加单独的curl句柄
PHP 5.1.0 及以上版本
curl_multi_add_handle() 函数用于将一个cURL句柄(即curl_init()返回的句柄)添加到一个cURL多重请求句柄中。这是cURL的多线程(多请求)处理的一部分,允许在一个请求中同时发起多个请求,提升网络请求的效率。
curl_multi_add_handle(resource $mh, resource $ch): int
返回值是一个整数,表示操作结果。如果成功,返回CURLM_OK(即0)。如果发生错误,返回相应的错误代码。
以下是使用 curl_multi_add_handle() 函数的一个示例,展示如何同时发起多个HTTP请求:
本示例展示了如何初始化多个cURL请求,并将其添加到一个多重请求句柄中,然后执行这些请求:
<?php
// 初始化一个多重cURL句柄
$mh = curl_multi_init();
// 创建第一个cURL请求句柄
$ch1 = curl_init('http://www.example.com');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
// 创建第二个cURL请求句柄
$ch2 = curl_init('http://www.example.org');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
// 将cURL请求句柄添加到多重句柄中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
// 执行多个请求
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
// 获取并输出结果
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
echo "Response from example.com: " . $response1;
echo "Response from example.org: " . $response2;
// 关闭cURL句柄
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>